# 字符串表现形式
a = "I'm Tom"
b = 'Tom said:" I am Tom'
c = 'Tom said:" I\'m Tom"' # \' 表示单引号的意思
d = '''Tom said:"I'm Tom'''
e = """Tom said :"I'm Tom" """
f = "Tom \n aa"
g = r"Tom \n aa"
# print(e) # Tom said :"I'm Tom"
# print(f) # Tom said :"I'm Tom"
# print(g) # Tom \n aa

# 字符串切片
world = "longzai"
# 下标从左面开始是0
# l = 0 ; o = 1 ; n = 2;g = 3;z = 4;a = 5;i = 6
"""print(world[0]) # l
print(world[1]) # o
print(world[2]) # n
print(world[3]) # g
print(world[4]) # z"""
# 下标从右面开始是-1
# i = -1 ; a = -2;z = -3;g = -4;n = -5;o = -6;l = -7
"""print(world[-1]) # i
print(world[-2]) # a
print(world[-3]) # z
print(world[-4]) # g
print(world[-5]) # n"""
QC1 = "辽宁省沈阳市旭辉中心B座2901沁创一达IT培训第一期"
# 我想取出旭
# print(QC1[6]) # 旭
# print(QC1[-21])
# 切片：[start:end:step]
# start：开始的长度
# end：结束的长度
# step：步进
# [start:end]
# print(QC1[0:3]) # 取出辽宁省
# print(QC1[6:10]) # 取出旭辉中心
# print(QC1[16:20]) # 取出沁创一达
# print(QC1[12:16]) # 2901
# print(QC1[:]) # 开始和结束都是空的，取出全部
# print(QC1[2:]) # 从下标第二个开始往后都要

# [start:end:step]
# print(QC1[0:3:2]) # 从0开始取到2结束，每隔2个取值 # 辽宁省
# print(QC1[2:8:3]) # 省沈阳市旭辉  省市
# print(QC1[5:15:6]) # 市旭辉中心B座290   市座
# print(QC1[::-1]) # step是-1，倒序
# 字符串的相关方法
student_info = "我叫郝健成，今年65岁，男"
# 获取字符串的长度
"""print(len(student_info)) #  13"""
# 查找字符串所在的索引位置
"""print(student_info.find("今")) # 查找今所在的索引位置
print(student_info.index("男")) # 12"""
# 查找最大索引，如果有重复的对象，返回索引最大值
"""print(student_info.rfind("，"))
print(student_info.rfind("白")) # 如果没有，返回-1"""
# print(student_info.count("，")) # 统计逗号出现了几次
stu_info = "abcqqq1asdasd"
# print(stu_info.capitalize()) # 将首字母大写
# print(stu_info.endswith("d")) # 判断最后一位是否是d
# print(stu_info.endswith("e")) # 判断最后一位是否是e
# print(stu_info.lower()) # 把字符串里面的内容都转变成小写
# print("AAA".lower()) # 把大写的AAA 转变成了aaa
# print(stu_info.replace("1", "郝健成")) # 替换字符串内容

# 任何字符串的方法都不会改变原始字符串，因为字符串是不可变的
# print(stu_info)

#那如果我想要使用新的字符串呢？  定义变量进行接收
"""list_obj = stu_info.split("1")# 按照1进行分割，返回的是一个列表对象
print(list_obj) # [abcqqq,asdasd]

new_str = stu_info.replace("a","郝健成")
print(new_str)"""

# 成员运算符
"""str_o1 = "白嘉诚"
if "白" in str_o1:
    print("白在白嘉诚字符串里")
else:
    print("白不在白嘉诚字符串里")

if "高" not in "白嘉诚":
    print("高不在白嘉诚里")
else:
    print("高在白嘉诚里")"""

# 身份运算符
a1 = 10
b1 = 10
# if a1 is b1: # is比较的是地址值
#     print("a1和b1的地址值一样")
# else:
#     print("a1和b1的地址值不一样")
# id可以检查地址空间
# 整数类型，如果值一样，地址值也是一样的
# print(id(a1)) # 查看a1所在的地址值
# print(id(b1)) # 查看b1所在的地址值

# 字符串类型，如果值一样，地址值也是一样的
str_a = "a"
str_b = "a"
print(id(str_a))
print(id(str_b))

# 元组类型，如果值一样，地址值也是一样的
"""tuple_a = (1,2,3)
tuple_b = (1,2,3)
print(id(tuple_a))
print(id(tuple_b))
"""
# 列表类型 ，就算值一样，地址值也不会一样
a_list = [1,2,3]
b_list = [1,2,3]
# print(id(a))
# print(id(b))
"""if a_list is b_list:
    print("两个列表地址值一样")
else:
    print("两个列表地址值不一样")"""
if a_list == b_list: # ==比较的是列表里面值
    print("两个列表值一样")
else:
    print('两个列表值不一样')


















